Florian Müllner [Tue, 25 Jan 2011 18:12:03 +0000 (19:12 +0100)]
Overview: Adjust to window size changes
Windows may change their size while the overview is open, e.g. when
switching panels in the control center. Make sure that the preview's
position and overlay are updated in that case.
Florian Müllner [Tue, 25 Jan 2011 17:21:36 +0000 (18:21 +0100)]
gs-menu: Do not exclude "Core" category
With the current rule set, we exclude applications in the "Core"
category - this includes Nautilus, which we want to show up at
least until "Finding and Reminding" is implemented, so remove
the exclude rule for now.
Florian Müllner [Mon, 24 Jan 2011 22:15:33 +0000 (23:15 +0100)]
swipe-scrolling: Take threshold into account during drag
On button-release, a threshold is used to determine if the gesture
should be considered a click and thus ignored. While the drag is
active though, the controlled actor is dragged immediately. As a
result, dragging by a tiny amount does not trigger a snap back when
the action is interpreted as a click. As a fix, do not update the
dragged actor's position until the same threshold is passed.
Florian Müllner [Mon, 24 Jan 2011 21:31:10 +0000 (22:31 +0100)]
swipe-scroll: Don't eat button-release events on click
The main overview group starts capturing events on button-press
events to implement swipe-scrolling. While reactive children of
the group which handle both button-press and button-release events
don't trigger swipe-scrolling, children that only rely on
button-release have stopped working - at least the primary/secondary
icons of the search entry are affected. While the capture handler
already checks the pointer movement between press and release to
determine whether the action should be considered a click rather
than a drag, it still blocks the release event from propagating.
Instead, only block release events for drag actions, but not for
clicks.
Andrea Veri [Mon, 24 Jan 2011 23:06:58 +0000 (00:06 +0100)]
Modifying Colin Walters UID. (cwalters to walters) into gnome-shell.doap.
This was causing some 'no route to host' mail sent to RT. AndreaVeri on
behalf of the AccountsTeam
Ray Strode [Wed, 12 Jan 2011 22:07:19 +0000 (17:07 -0500)]
StThemeNode: split border_texture into two vars
The border_texture (and border_material) variable is being
overloaded for two purposes: it's used as a source
to 9-slice the border from, and it's used as place to prerender
the background and border together for gradients.
While we only do one or the other for any given node, the two cases
are distinct, and should use distinct variables for readability.
Ray Strode [Thu, 13 Jan 2011 23:27:24 +0000 (18:27 -0500)]
StThemeNode: Split -st-shadow into three attributes
Currently, "-st-shadow" can mean one of three very
different things:
1) shadow based on alpha of the background image
2) shadow the "border box" of the node
3) shadow applied to the content of a StIcon
It isn't well defined which of the above 3 cases
-st-shadow will mean for any given node, however.
This commit splits the property into three
different properties, "box-shadow",
"-st-background-image-shadow", and "icon-shadow"
to make it all very explicit.
Ray Strode [Wed, 5 Jan 2011 15:08:50 +0000 (10:08 -0500)]
tests: showcase borders with non-solid backgrounds
This commit adds a few more examples to borders.js
that render borders with various combinations of
gradients, background images, shadows, and
border-images.
Florian Müllner [Fri, 21 Jan 2011 18:50:25 +0000 (19:50 +0100)]
app-display: Enable swipe-scrolling in the app view
With general support for swipe-scrolling in the overview, there is
no reason to limit the behavior to workspaces. It is equally useful
for scrolling through the grid of available applications, so enable
swipe-scrolling for the app view.
Florian Müllner [Fri, 21 Jan 2011 13:08:42 +0000 (14:08 +0100)]
overview: Add a facility for swipe-scrolling
The workspaces view allows to drag the active workspace to swipe-scroll
to the next or previous workspace. While this behavior can come in handy
in general, there are good reasons to move the functionality to the
overview:
- Finding a spot on a workspace to start a drag can be hard,
especially when the workspace contains a single window
- With the new layout, workspaces have no visible border, making
it hard to predict where a drag can be initiated
- The same behavior is equally useful for other elements
So add setScrollAdjustment() to the overview, which allows setting
an adjustment controlled with swipe-scrolling (either horizontally
or vertically); only a single adjustment can be controlled at a
time. A swipe-scroll can be initiated on any part of the background that
is not occupied by a reactive actor. For cases where further control
is needed, 'swipe-scroll-start' and 'swipe-scroll-end' signals are
emitted.
Introduce a generic framework for on/off indicators that are shown
in the panel, next to the system status area, and use it for
showing the status of modifier keys.
Florian Müllner [Thu, 20 Jan 2011 20:15:05 +0000 (21:15 +0100)]
st: Report correct paint volumes during transitions
StWidget reports a paint volume large enough to paint the current
theme node. As CSS transitions also paint the previous theme node,
the reported paint volume may be incorrect, resulting in screen
artifacts when painting outside the reported volume.
Add st_theme_node_transition_get_paint_box() to calculate an allocation
large enough to paint both theme nodes, and use it to report the correct
paint volume during transitions.
Florian Müllner [Thu, 20 Jan 2011 15:46:55 +0000 (16:46 +0100)]
overview: Always return a value in _onDragMotion()
Drag monitor functions are supposed to return a value, but
_onDragMotion() does not always do so. Add the missing return
value and remove unnecessary else.
Florian Müllner [Thu, 20 Jan 2011 14:42:46 +0000 (15:42 +0100)]
environment: Fix runtime crash due to GTK+ change
As Gdk.Device.get_state() does not work properly from Javascript,
we used to block it in the environment. The method now has been
annotated with (skip), causing shell to crash on startup as only
existing methods may be blocked.
Just remove the block in question, as the annotation prevents the
use of that method anyway.
If someone wonders why not implement AtkText interface, or expose the
internal ClutterText, here a extract from AtkText doc:
"AtkText should be implemented by AtkObjects on behalf of widgets that
have text content which is either attributed or otherwise
non-trivial. AtkObjects whose text content is simple, unattributed,
and very brief may expose that content via atk_object_get_name
instead;"
StLabel is attributed, but is still simple and brief. In the same way
the atk_object_get_name redefinition is required, so this patch is the
first step. We can implement AtkText in the future.
StWidgetAccessible: accessibility support for StWidget
It includes:
* Expose a proper focusable state, instead of the default one from
cally, using StWidget::can_focus, and also notifying the state change
* Management of the selected stated, using the current pseudo_class.
* Defines a new virtual method on StWidget: get_accessible_type. In
this way it is not required to reimplement get_accessible just for
a accessible type change. get_accessible is reimplemented using this.
You can see that as a substitute of the atk object factory
Owen W. Taylor [Tue, 14 Dec 2010 01:50:19 +0000 (02:50 +0100)]
Hard code Cantarell as the default UI font.
- specify an overall font-family for all children of the stage and
for places where we just want to use a size, use font-size.
- also shrink the humongous 16px panel and menu size to a reasonable 14.
- scale up the icons to be 16px by default again
Based on a patch by Jakub Steiner <jimmac@gmail.com>
Owen W. Taylor [Wed, 19 Jan 2011 16:34:10 +0000 (11:34 -0500)]
StIcon: round icon size to an integer
Instead of converting a CSS-specified length to an integer by truncation,
round. This means that sizes specified by converting a pixel value into
non-px terms will work reliably instead of potentially being off-by-one.
Maxim Ermilov [Wed, 19 Jan 2011 02:06:53 +0000 (05:06 +0300)]
util: Fix regex used to match for URLs
Commit a65a0f03d49 changed the literal RegExp to a string-based
RegExp(). As backslashes are treated specially inside strings,
translating an expression as /\s/ to '\s' results in a faulty
regex of /s/, so escape backslashes where necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=639914
Florian Müllner [Mon, 17 Jan 2011 19:52:26 +0000 (20:52 +0100)]
places: Do not use nautilus' 'desktop-is-home-dir' setting
g_settings_schema_new() aborts if the requested schema is not found,
so the previous approach of handling the case of unstable nautilus
not being installed did not work.
Instead, remove the use of the setting altogether - the original intent
was to not have separate items for Desktop and Home in the places
section if the nautilus key was set. As the section has been removed
anyway, the impact of always adding the desktop folder is minimal
(e.g. searching for "desktop" will match the desktop folder even
if it's set to the home folder).
Florian Müllner [Sun, 16 Jan 2011 19:21:10 +0000 (20:21 +0100)]
places: Fail gracefully when not using unstable nautilus
The latest development version of nautilus has been ported to
GSettings, which we now use as well for the desktop-is-home-dir
preference. Obviously, the required schema is only available if
a recent enough nautilus version is installed. Instead of adding
yet another module to the moduleset, catch the exception and
ignore the preference in case the schema is not available.
Florian Müllner [Sun, 16 Jan 2011 19:18:09 +0000 (20:18 +0100)]
places: Port to GSettings
'Places' follows the nautilus preference of whether the Desktop
should be a separate directory or the home folder should be used.
Nautilus has been ported to GSettings a while ago, so follow suit.
Florian Müllner [Fri, 14 Jan 2011 21:15:53 +0000 (22:15 +0100)]
genericDisplay: Remove unused module
GenericDisplay used to provide a common base class for places and
recent items, none of which exists anymore. As of current mockups,
display items in "Finding and Reminding" should be based on
BaseIcon / IconGrid instead.
Florian Müllner [Fri, 14 Jan 2011 21:08:03 +0000 (22:08 +0100)]
doc-display: Remove UI of the old dash display
Currently recent items only show up in search results. It is planned
to bring them back in the context of "Finding and Reminding", but
the UI in the corresponding mockups differs significantly from the
removed UI, so that it doesn't seem useful to keep it around.
Florian Müllner [Thu, 13 Jan 2011 22:32:20 +0000 (23:32 +0100)]
kbd-status: Close the menu when switching layouts
Layout items in the menu overwrite PopupBaseMenuItem.activate(),
so the menu stays open when selecting a layout from the menu.
Chain up to the parent class' method to make the items behave properly.
Ray Strode [Wed, 20 Oct 2010 19:08:14 +0000 (15:08 -0400)]
main: add timestamp parameter to push/popModal
Right now popModal() passes global.get_current_time() for
its begin_modal() call. global.get_current_time() is the
timestamp of the last gdk or clutter event processed by the
shell's mutter process. These values could potentially be
be too stale to use if pushModal() were to get called in
response to an event by another process.
This commit changes pushModal() to have an optional timestamp
argument, which can be used to associate the call with the
event that initiated it.
Florian Müllner [Thu, 13 Jan 2011 22:48:51 +0000 (23:48 +0100)]
generic-container: Queue a redraw in skip_paint()
When changing a child's visibility with skip_paint(), the change
will not be visible until a redraw is triggered. Queue a redraw,
so that the function has an immediate effect.
Florian Müllner [Thu, 13 Jan 2011 22:32:20 +0000 (23:32 +0100)]
kbd-status: Close the menu when switching layouts
Layout items in the menu overwrite PopupBaseMenuItem.activate(),
so the menu stays open when selecting a layout from the menu.
Chain up to the parent class' method to make the items behave properly.